package fr.afcepf.ai85.ent;

// Generated 21 mars 2013 17:20:56 by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * InscriptionPeriscolaire generated by hbm2java
 */
@Entity
@Table(name = "inscription_periscolaire", catalog = "gepeto_db")
public class InscriptionPeriscolaire implements java.io.Serializable {

	private Integer idInscription;
	private Eleve eleve;
	private TypePaiement typePaiement;
	private ModeEnvoiFacture modeEnvoiFacture;
	private PeriodeInscription periodeInscription;
	private Date dateInscription;
	private Date dateOuvertureInscription;
	private Date dateAnnulationInscription;
	private Date dateResiliation;
	private String rib;
	private String commentaireInscrPeri;
	private Set<Facture> factures = new HashSet<Facture>(0);
	private Set<PlanningFreqReguliere> planningFreqRegulieres = new HashSet<PlanningFreqReguliere>(
			0);
	private Set<PlanningFreqOccas> planningFreqOccases = new HashSet<PlanningFreqOccas>(
			0);
	private Set<DateAbsencePointage> dateAbsencePointages = new HashSet<DateAbsencePointage>(
			0);

	public InscriptionPeriscolaire() {
	}

	public InscriptionPeriscolaire(Eleve eleve, TypePaiement typePaiement,
			ModeEnvoiFacture modeEnvoiFacture, Date dateInscription) {
		this.eleve = eleve;
		this.typePaiement = typePaiement;
		this.modeEnvoiFacture = modeEnvoiFacture;
		this.dateInscription = dateInscription;
	}

	public InscriptionPeriscolaire(Eleve eleve, TypePaiement typePaiement,
			ModeEnvoiFacture modeEnvoiFacture,
			PeriodeInscription periodeInscription, Date dateInscription,
			Date dateOuvertureInscription, Date dateAnnulationInscription,
			Date dateResiliation, String rib, String commentaireInscrPeri,
			Set<Facture> factures,
			Set<PlanningFreqReguliere> planningFreqRegulieres,
			Set<PlanningFreqOccas> planningFreqOccases,
			Set<DateAbsencePointage> dateAbsencePointages) {
		this.eleve = eleve;
		this.typePaiement = typePaiement;
		this.modeEnvoiFacture = modeEnvoiFacture;
		this.periodeInscription = periodeInscription;
		this.dateInscription = dateInscription;
		this.dateOuvertureInscription = dateOuvertureInscription;
		this.dateAnnulationInscription = dateAnnulationInscription;
		this.dateResiliation = dateResiliation;
		this.rib = rib;
		this.commentaireInscrPeri = commentaireInscrPeri;
		this.factures = factures;
		this.planningFreqRegulieres = planningFreqRegulieres;
		this.planningFreqOccases = planningFreqOccases;
		this.dateAbsencePointages = dateAbsencePointages;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "ID_INSCRIPTION", unique = true, nullable = false)
	public Integer getIdInscription() {
		return this.idInscription;
	}

	public void setIdInscription(Integer idInscription) {
		this.idInscription = idInscription;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_ELEVE", nullable = false)
	public Eleve getEleve() {
		return this.eleve;
	}

	public void setEleve(Eleve eleve) {
		this.eleve = eleve;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_TYPE_PAIEMENT", nullable = false)
	public TypePaiement getTypePaiement() {
		return this.typePaiement;
	}

	public void setTypePaiement(TypePaiement typePaiement) {
		this.typePaiement = typePaiement;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_MODE_ENVOI_FACTURE", nullable = false)
	public ModeEnvoiFacture getModeEnvoiFacture() {
		return this.modeEnvoiFacture;
	}

	public void setModeEnvoiFacture(ModeEnvoiFacture modeEnvoiFacture) {
		this.modeEnvoiFacture = modeEnvoiFacture;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_PERIODE")
	public PeriodeInscription getPeriodeInscription() {
		return this.periodeInscription;
	}

	public void setPeriodeInscription(PeriodeInscription periodeInscription) {
		this.periodeInscription = periodeInscription;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "DATE_INSCRIPTION", nullable = false, length = 10)
	public Date getDateInscription() {
		return this.dateInscription;
	}

	public void setDateInscription(Date dateInscription) {
		this.dateInscription = dateInscription;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "DATE_OUVERTURE_INSCRIPTION", length = 10)
	public Date getDateOuvertureInscription() {
		return this.dateOuvertureInscription;
	}

	public void setDateOuvertureInscription(Date dateOuvertureInscription) {
		this.dateOuvertureInscription = dateOuvertureInscription;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "DATE_ANNULATION_INSCRIPTION", length = 10)
	public Date getDateAnnulationInscription() {
		return this.dateAnnulationInscription;
	}

	public void setDateAnnulationInscription(Date dateAnnulationInscription) {
		this.dateAnnulationInscription = dateAnnulationInscription;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "DATE_RESILIATION", length = 10)
	public Date getDateResiliation() {
		return this.dateResiliation;
	}

	public void setDateResiliation(Date dateResiliation) {
		this.dateResiliation = dateResiliation;
	}

	@Column(name = "RIB", length = 50)
	public String getRib() {
		return this.rib;
	}

	public void setRib(String rib) {
		this.rib = rib;
	}

	@Column(name = "COMMENTAIRE_INSCR_PERI", length = 256)
	public String getCommentaireInscrPeri() {
		return this.commentaireInscrPeri;
	}

	public void setCommentaireInscrPeri(String commentaireInscrPeri) {
		this.commentaireInscrPeri = commentaireInscrPeri;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "inscriptionPeriscolaire")
	public Set<Facture> getFactures() {
		return this.factures;
	}

	public void setFactures(Set<Facture> factures) {
		this.factures = factures;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "inscriptionPeriscolaire")
	public Set<PlanningFreqReguliere> getPlanningFreqRegulieres() {
		return this.planningFreqRegulieres;
	}

	public void setPlanningFreqRegulieres(
			Set<PlanningFreqReguliere> planningFreqRegulieres) {
		this.planningFreqRegulieres = planningFreqRegulieres;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "inscriptionPeriscolaire")
	public Set<PlanningFreqOccas> getPlanningFreqOccases() {
		return this.planningFreqOccases;
	}

	public void setPlanningFreqOccases(
			Set<PlanningFreqOccas> planningFreqOccases) {
		this.planningFreqOccases = planningFreqOccases;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "inscriptionPeriscolaire")
	public Set<DateAbsencePointage> getDateAbsencePointages() {
		return this.dateAbsencePointages;
	}

	public void setDateAbsencePointages(
			Set<DateAbsencePointage> dateAbsencePointages) {
		this.dateAbsencePointages = dateAbsencePointages;
	}

}
